package com.xunfang.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author yellow Doctor
 * @date 2025-11-11
 * @desc https://blog.csdn.net/hekai7217
 *
 *  测试topic模式
 *
 *   01 交换机
 *           topic.exchange
 *   02 队列
 *           nancheng.gk
 *           songshanghu.gk
 *           xunfang.gk
 *
 *   03 交换机和队列绑定
 *       路由： 交换机确定把 消息发送到那个队列中
 *       路由 有 * 匹配一个单词
 *       路由 有 # 匹配 0个 或者多个 单词
 */
//@Configuration
//public class TopicModelConfig {
//
//    //准备队列
//    //创建两个队列
//    @Bean
//    public Queue fanoutQueue1() {
//        return new Queue("nancheng.gk");
//    }
//
//    @Bean
//    public Queue fanoutQueue2() {
//        return new Queue("songshanghu.gk");
//    }
//
//    @Bean
//    public Queue fanoutQueue3() {
//        return new Queue("xunfang.gk");
//    }
//
//    @Bean
//    public TopicExchange topicExchange(){
//        return new TopicExchange("topic.exchange");
//    }
//
//    //绑定
//    @Bean
//    public Binding fanoutBinding1(Queue fanoutQueue1, TopicExchange topicExchange) {
//        return BindingBuilder.bind(fanoutQueue1).to(topicExchange).with("*.gk");  //ancheng.gk xxx.gk 都可以收消息
//    }
//
//    @Bean
//    public Binding fanoutBinding2(Queue fanoutQueue2, TopicExchange topicExchange) {
//        return BindingBuilder.bind(fanoutQueue2).to(topicExchange).with("#.gk");  //songshanghu.gk xxx.xxx.xxx.gk 都可以收消息
//    }
//
//    @Bean
//    public Binding fanoutBinding3(Queue fanoutQueue3, TopicExchange topicExchange) {
//        return BindingBuilder.bind(fanoutQueue3).to(topicExchange).with("abc.*.gk"); //xunfang.gk abc.xxx.gk 可以收消息
//    }
//}
